package com.ls.markt.listener.excel;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import lombok.Getter;
import lombok.Setter;
import lombok.extern.slf4j.Slf4j;

import java.util.ArrayList;
import java.util.List;


/**
 * 解析监听器，
 * 每解析一行会回调invoke()方法。
 * 整个excel解析结束会执行doAfterAllAnalysed()方法
 *
 * @author Mr_Fei
 * @date 2019/11/19
 */
@Slf4j
@Getter
@Setter
public class ExcelListener extends AnalysisEventListener {

    /**
     * 自定义存储表格数据
     */
    private List<Object> dataList = new ArrayList<Object>();
    /**
     * 自定义存储标题结果
     */
//    private Map<Integer, String> titleMap = new HashMap<>();

    @Override
    public void invoke(Object result, AnalysisContext context) {
        //获取当前行号
//        Integer rowIndex = context.readRowHolder().getRowIndex();
//        if (rowIndex == 0) {
//            this.titleMap = result;
//        } else {
//            //数据存储到list，供批量处理，或后续自己业务逻辑处理。
//        }
        dataList.add(result);
//        log.info("解析数据第{}行，数据为：{}", rowIndex, result);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        // list.clear();//解析结束销毁不用的资源
        log.info("解析完成！");
    }
}
